home *** CD-ROM | disk | FTP | other *** search
/ Aminet 37 / Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso / Aminet / dev / lang / sofa.lha / sofa / developer / rebuild / rebuild.rexx < prev    next >
OS/2 REXX Batch file  |  2000-03-04  |  2KB  |  78 lines

  1. /*
  2.  * rebuild.rexx - Rebuild optimized SmallEiffel binaries with SAS/c.
  3.  *
  4.  * Supports to compile "small" programs with near code and data model,
  5.  * while "big" programs use far model. For that, the SCOPTIONS file is
  6.  * composed of various #?.with files:
  7.  *
  8.  * - general.with contains options used with both small and big programs
  9.  * - small.with contains options used only for small programs
  10.  * - big.with contains options only for big programs
  11.  *
  12.  * Furthermore, small programs are compiled using the SE's "-no_split",
  13.  * making things a it a lot easier for the C optimizer.
  14.  *
  15.  * $VER: rebuild.rexx 1.0 (3.3.2000)
  16.  */
  17.  
  18. NoClean = 0
  19. NoCompile = 0
  20. NoCompile_to_c = 0
  21. NoFinder = 0
  22. NoPretty = 0
  23. NoShort = 0
  24.  
  25. /* paths of .with files */
  26. with_path = 'sofa:developer/rebuild/'
  27. general_with = with_path || 'general.with'
  28. small_with = with_path || 'small.with'
  29. big_with = with_path || 'big.with'
  30.  
  31. Address Command
  32.  
  33. call compile_small('clean', NoClean)
  34. call compile_small('compile', NoCompile)
  35. call compile_big('compile_to_c', NoCompile_to_c)
  36. call compile_small('finder', NoFinder)
  37. call compile_big('pretty', NoPretty)
  38. call compile_big('short', NoShort)
  39.  
  40. 'delete quiet SCOPTIONS #?.o'
  41.  
  42. exit 0
  43.  
  44. /* subroutines */
  45.  
  46. compile_small:
  47.    Parse Arg target, skip
  48.    call compile(1)
  49.    return
  50.  
  51. compile_big:
  52.    Parse Arg target, skip
  53.    call compile(0)
  54.    return
  55.  
  56. compile:
  57.    Parse Arg is_small
  58.  
  59.    if skip then do
  60.       Say target || ' skipped'
  61.    end
  62.    else do
  63.       compile = 'compile -boost -no_gc '
  64.       if is_small then do
  65.          compile = compile || '-no_split '
  66.          'echo >SCOPTIONS "WITH=' || general_with || ' *NWITH=' || small_with || '"'
  67.       end
  68.       else do
  69.          'echo >SCOPTIONS "WITH=' || general_with || ' *NWITH=' || big_with || '"'
  70.       end
  71.       compile = compile || target
  72.       Say compile
  73.       compile
  74.       'clean ' || target
  75.    end
  76.  
  77.    return
  78.